﻿using BaoVeThanhDia.Buttons;
using Microsoft.Phone.Controls;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using System.Collections.Generic;

namespace BaoVeThanhDia.MapAndUpgrade
{
    class UpgradeItem
    {
        int Index;// thứ tự trong mảng
        int PriceStar;
        bool isBought;
        Vector2 position;
        Button Image;
        Texture2D ImageStar;
        public UpgradeItem(int index, bool isbought)
        {
            this.Index = index;
            position = new Vector2((Index % 4) * 121 + 35, (Index / 4) * 150 + 110);
            setBought(isbought);
            setPrice();
        }
        public void Load(ContentManager content)
        {
            Image.Load(content);
            ImageStar = content.Load<Texture2D>("images/mapandupgrade/sao1");
        }
        public void Draw(SpriteBatch sprite, Vector2 Dolech, SpriteFont font)
        {
            Image.Draw(sprite, Dolech);
            sprite.Draw(ImageStar, position + new Vector2(70, 50) + Dolech, new Rectangle(0, 0, 50, 24), Color.White, 0, Vector2.Zero, 1, SpriteEffects.None, 0);
            sprite.DrawString(font, PriceStar.ToString(), position + new Vector2(67, 52) + Dolech, Color.White);
        }
        public void OptionDraw(SpriteBatch sprite, Vector2 posi)
        {
            Image.OptionDraw(sprite, posi);
        }
        public void DrawScript(SpriteBatch sprite, SpriteFont font)
        {
            switch (Index)
            {
                #region kỹ năng vật lý
                case 0:
                    {
                        sprite.DrawString(font, "Tăng 20% vàng khởi điểm.", new Vector2(530, 200), Color.White);
                        break;
                    }
                case 1:
                    {
                        sprite.DrawString(font, "Tăng 5% số vàng kiếm được.", new Vector2(522, 200), Color.White);
                        break;
                    }
                case 2:
                    {
                        sprite.DrawString(font, "Tăng 25% vùng ảnh hưởng", new Vector2(530, 200), Color.White);
                        sprite.DrawString(font, "Mưa sao băng.", new Vector2(590, 230), Color.White);
                        break;
                    }
                case 3:
                    {
                        sprite.DrawString(font, "Tăng 50% sát thương Mưa", new Vector2(530, 200), Color.White);
                        sprite.DrawString(font, "sao băng.", new Vector2(620, 230), Color.White);
                        break;
                    }
                #endregion #region kỹ năng vật lý
                #region kỹ năng phép thuật
                case 4:
                    {
                        sprite.DrawString(font, "Tăng 2s cho Đông cứng.", new Vector2(540, 200), Color.White);
                        break;
                    }
                case 5:
                    {
                        sprite.DrawString(font, "Tăng 2s cho Vô hiệu hóa.", new Vector2(540, 200), Color.White);
                        break;
                    }
                case 6:
                    {
                        sprite.DrawString(font, "Giảm 50% năng lượng cho", new Vector2(530, 200), Color.White);
                        sprite.DrawString(font, "Đông cứng và Vô hiệu hóa.", new Vector2(530, 230), Color.White);
                        break;
                    }
                case 7:
                    {
                        sprite.DrawString(font, "Tăng 50% năng lượng khởi", new Vector2(530, 200), Color.White);
                        sprite.DrawString(font, "điểm.", new Vector2(630, 230), Color.White);
                        break;
                    }
                #endregion
                #region kỹ năng tháp cơ bản
                case 8:
                    {
                        sprite.DrawString(font, "Giảm 30% giá mua của tháp", new Vector2(530, 200), Color.White);
                        sprite.DrawString(font, "phòng thủ cơ bản.", new Vector2(565, 230), Color.White);
                        break;
                    }
                case 9:
                    {
                        sprite.DrawString(font, "Tăng 20% tốc độ bắn của", new Vector2(535, 200), Color.White);
                        sprite.DrawString(font, "tháp cơ bản.", new Vector2(600, 230), Color.White);
                        break;
                    }
                case 10:
                    {
                        sprite.DrawString(font, "Xác suất 15% nhân đôi sát", new Vector2(530, 200), Color.White);
                        sprite.DrawString(font, "thương cho tháp cơ bản.", new Vector2(540, 230), Color.White);
                        break;
                    }
                case 11:
                    {
                        sprite.DrawString(font, "Tăng 50% tầm xa cho tháp", new Vector2(530, 200), Color.White);
                        sprite.DrawString(font, "cơ bản.", new Vector2(630, 230), Color.White);
                        break;
                    }
                #endregion
                #region kỹ năng tháp thần tiễn
                case 12:
                    {
                        sprite.DrawString(font, "Tăng 15% tốc độ bắn của", new Vector2(530, 200), Color.White);
                        sprite.DrawString(font, "tháp thần tiễn.", new Vector2(595, 230), Color.White);
                        break;
                    }
                case 13:
                    {
                        sprite.DrawString(font, "Tăng 15% sát thương cho", new Vector2(530, 200), Color.White);
                        sprite.DrawString(font, "tháp thần tiễn.", new Vector2(595, 230), Color.White);
                        break;
                    }
                case 14:
                    {
                        sprite.DrawString(font, "Giảm 15% giá mua cho tháp", new Vector2(530, 200), Color.White);
                        sprite.DrawString(font, "thần tiễn.", new Vector2(610, 230), Color.White);
                        break;
                    }
                case 15:
                    {
                        sprite.DrawString(font, "Có 10% xác suất bắn 2 lần", new Vector2(530, 200), Color.White);
                        sprite.DrawString(font, "liên tiếp.", new Vector2(620, 230), Color.White);
                        break;
                    }
                #endregion
                #region kỹ năng tháp pháo
                case 16:
                    {
                        sprite.DrawString(font, "Tăng 15% xác suất X2 sát", new Vector2(530, 200), Color.White);
                        sprite.DrawString(font, "thương cho tháp đại bác.", new Vector2(530, 230), Color.White);
                        break;
                    }
                case 17:
                    {
                        sprite.DrawString(font, "Tăng 15% sát thương cho", new Vector2(531, 200), Color.White);
                        sprite.DrawString(font, "tháp đại bác.", new Vector2(595, 230), Color.White);
                        break;
                    }
                case 18:
                    {
                        sprite.DrawString(font, "Tăng 15% tốc độ đánh cho", new Vector2(530, 200), Color.White);
                        sprite.DrawString(font, "tháp đại bác.", new Vector2(595, 230), Color.White);
                        break;
                    }
                case 19:
                    {
                        sprite.DrawString(font, "Tháp đại bác có thêm xác", new Vector2(532, 200), Color.White);
                        sprite.DrawString(font, "suất gây choáng.", new Vector2(585, 230), Color.White);
                        break;
                    }
                #endregion
                #region kỹ năng tháp ma thuật
                case 20:
                    {
                        sprite.DrawString(font, "Giảm 15% giá mua cho tháp", new Vector2(529, 200), Color.White);
                        sprite.DrawString(font, "ma thuật.", new Vector2(610, 230), Color.White);
                        break;
                    }
                case 21:
                    {
                        sprite.DrawString(font, "Tăng 15% phạm vi ảnh", new Vector2(540, 200), Color.White);
                        sprite.DrawString(font, "hưởng cho tháp ma thuật.", new Vector2(532, 230), Color.White);
                        break;
                    }
                case 22:
                    {
                        sprite.DrawString(font, "Tăng 15% sát thương phép", new Vector2(530, 200), Color.White);
                        sprite.DrawString(font, "cho tháp ma thuật.", new Vector2(565, 230), Color.White);
                        break;
                    }
                case 23:
                    {
                        sprite.DrawString(font, "Tăng sát thương cho tất cả", new Vector2(530, 200), Color.White);
                        sprite.DrawString(font, "các tháp dựa trên số tháp", new Vector2(535, 230), Color.White);
                        sprite.DrawString(font, "phép thuật hiện có.", new Vector2(560, 260), Color.White);
                        break;
                    }
                #endregion
            }
        }
        public bool isTouch(Vector2 touch)
        {
            if (Image.isTouch(touch)) return true;
            else return false;
        }
        public bool getisBought() { return isBought; }
        public void setBought(bool bought)
        {
            isBought = bought;
            string link;
            switch (Index / 4)
            {
                case 0: link = "physic";
                    break;
                case 1: link = "magic";
                    break;
                case 2: link = "basic";
                    break;
                case 3: link = "archer";
                    break;
                case 4: link = "canon";
                    break;
                default: link = "mage";
                    break;
            }
            link = "images/upgradeSkill/" + link + "/" + ((Index % 4) + 1).ToString() + (isBought ? "2" : "1");
            Image = new Button("item", link, position, new Vector2(0, 0), new Vector2(150, 150), 0.5f);
        }
        public void setPrice()
        {
            switch (Index)
            {
                case 0: PriceStar = 4; break;
                case 1: PriceStar = 5; break;
                case 2: PriceStar = 7; break;
                case 3: PriceStar = 9; break;
                case 4: PriceStar = 3; break;
                case 5: PriceStar = 5; break;
                case 6: PriceStar = 9; break;
                case 7: PriceStar = 7; break;
                case 8: PriceStar = 2; break;
                case 9: PriceStar = 4; break;
                case 10: PriceStar = 5; break;
                case 11: PriceStar = 7; break;
                case 12: PriceStar = 5; break;
                case 13: PriceStar = 7; break;
                case 14: PriceStar = 7; break;
                case 15: PriceStar = 10; break;
                case 16: PriceStar = 5; break;
                case 17: PriceStar = 5; break;
                case 18: PriceStar = 7; break;
                case 19: PriceStar = 10; break;
                case 20: PriceStar = 5; break;
                case 21: PriceStar = 7; break;
                case 22: PriceStar = 7; break;
                default: PriceStar = 10; break;
            }
        }
        public void setTouch(bool touch)
        {
            Image.setTouch(touch);
        }
        public int getIndex() { return Index; }
        public int getPriceStar() { return PriceStar; }
    }
}
